#ifndef USERPROFILE_H
#define USERPROFILE_H

#include <QString>
#include <QHash>
#include <QMap>
#include "ui_UserProfile.h"
#include "accountmanager.h"
#include "sessionmanager.h"

class UserProfile : public QWidget {
    Q_OBJECT

public:
    explicit UserProfile(QWidget *parent = nullptr);
    ~UserProfile();
    void analyzeJourneyData();  // 分析用户的行程数据
    QString getFrequentDepartureCity() const;  // 获取最常出发的城市
    QString getFrequentDestinationCity() const;  // 获取最常到达的城市
    QString sortOptionToString(int sortOption) const; // 获取最喜欢的排序方式
    QString getPreferredSortOption() const;
    void updateProfile(const QString& userID);
    void printProfileSummary() const;  // 打印用户画像总结
    bool isInternational(const QString& destinationCity) const;
    QString getPreferredTripType() const;

private:
    Ui::UserProfile *ui;
    QString userID;
    QHash<QString, int> departureCityFrequency;  // 出发城市及频率
    QHash<QString, int> destinationCityFrequency;  // 目的地城市及频率
    QMap<QString, int> sortPreferences;  // 排序偏好统计
    int internationalTrips = 0;  // 国际旅程次数
    int domesticTrips = 0;
};

#endif // USERPROFILE_H
